package com.grademaster.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.grademaster.entity.Courses;
import com.grademaster.vo.CourseTeacherVO;
import com.grademaster.vo.CourseVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author Administrator
* @description 针对表【courses(课程表)】的数据库操作Mapper
* @createDate 2024-06-25 13:57:00
* @Entity generator.domain.Courses
*/
@Mapper
public interface CoursesMapper extends BaseMapper<Courses> {
    /**
     * 根据条件查询课程信息
     * @param termName
     * @param teacherId
     * @param page
     * @param pageSize
     * @return
     */
    List<CourseVO> getCourseInfoByPage(@Param("termName") String termName, @Param("teacherId") String teacherId,
                                         @Param("page") int page, @Param("pageSize") int pageSize);

    /**
     * 根据条件查询课程数量
     * @param termName
     * @param teacherId
     * @return
     */
    int countCourseInfo(@Param("termName") String termName, @Param("teacherId") String teacherId);

    /**
     * 根据条件查询课程名称
     * @param teacherId
     * @return
     */
    List<String> selectDistinctCourseNamesByTeacherId(@Param("teacherId") String teacherId);

    /**
     * 根据条件查询课程名称
     * @param studentId
     * @return
     */
    List<String> selectDistinctCourseNamesByStudentId(@Param("studentId") String studentId);

    /**
     * 根据条件查询课程信息
     * @param name
     * @param termName
     * @param className
     * @param courseName
     * @param page
     * @param pageSize
     * @return
     */
    List<CourseTeacherVO> selectCoursesByConditions(
            String name,
            String termName,
            String className,
            String courseName,
            int page,
            int pageSize
    );

    /**
     * 根据条件查询课程数量
     * @param name
     * @param termName
     * @param className
     * @param courseName
     * @return
     */
    int countCoursesByConditions(
            String name,
            String termName,
            String className,
            String courseName
    );
}




